遗传算法解决单变量函数值得优化问题

      最近稍微学习一下智能算法的设计,就满Internet搜索,最终发现遗传算法是大家学习最多的,也是在各个领域内进行函数优化,解析解求解过程中很重要的一种方法!

学习遗传算法,首先为了上手较快,我推荐大家先使用Matlab,这个工具进行矩阵分析有应用,真的很管用,而且上手特别快!

      http://bbs.pinggu.org/biaoqian/matlabbb/  这个是Matlab相关下载的地方!

      http://www.ilovematlab.cn/forum.php  这个网址链接是很多初学者和专业人士都在这里进行讨论交流的地方!我就在这上面学习到好多知识!

      http://baike.soso.com/v100038.htm  这个网页上面有很详细的关于遗传只能算法的讲解,内容很详细,是我们学习的好帮手!希望对这个算法不是很熟悉的同学,要好好了解一下这个背景!

     个人理解:其实简单的来说,就是使用一个种有效的编码方式,将有效空间中的解集,按照编码方式排布,在代价函数的作用下,不断的有目的的迭代,去寻找最后解,当然这是把这个问题给简化好多!这几其中自然包括如何去选择,如何去进化,如何避免局部最优解,对于种群进化来说应该如何避免种群的进化速度,如何去交叉!如何寻找到一个比较好的代价函数!

     现在我们使用英国的谢菲尔德工具箱进行简单遗传算法的设计:下载地址:http://ishare.iask.sina.com.cn/f/7561185.html?sudaref=www.sogou.com&retcode=0

    简单的一元函数的优化:

     y = sin(10*pi*x)/x      1<=x<=2 

     参数的设置:

              种群大小:40

              最大遗传代数:20

              个体长度:20

              代沟:0.95

              交叉遗传:0.7

              变异概率:0.01

lb=1;ub=2;
ezplot('sin(10*pi*X)/X',[lb,ub]);
xlabel('自变量/X')
ylabel('函数值/y')



创建一个初始的种群,并用十进制数进行标示,便于计算

trace = zeros(2,MAXGEN);
FieldD = [PRECI;lb;ub;1;0;1;1];
Chrom = crtbp(NIND,PRECI);
gen = 0;
X = bs2rv(Chrom,FieldD);

代价函数:

ObjV = sin(10*pi*X)./X;


下面是主要的迭代过程:

while gen < MAXGEN
    FitnV = ranking(ObjV);
    Selch = select('sus',Chrom,FitnV,GGAP);
    Selch = recombin('xovsp',Selch,px);
    Selch = mut(Selch,pm);
    X = bs2rv(Selch,FieldD);
    ObjvSel = sin(10*pi*X)./X;
    [Chrom,ObjV] = reins(Chrom,Selch,1,1,ObjV,ObjvSel);
    X = bs2rv(Chrom,FieldD);
    gen = gen + 1;
    
    [Y,I] = min(ObjV);
    trace(1,gen) = X(I);
    trace(2,gen) = Y;
end

还有就是一些图片的显示工作!这个对于有matlab基础的同学来说是很easy的事情!在这个方向有什么要的建议我们一起讨论!



  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: matlab遗传算法工具箱是一个常用的优化工具。在多目标优化问题中,传统目标优化算法无法满足要求,需要使用多目标优化算法。 matlab遗传算法工具箱支持多目标优化的核心算法是多目标遗传算法(Multi-objective Genetic Algorithm,MOGA)。MOGA采用了多种遗传算法的技术,如遗传操作、种群初始化、适应度评估和终止条件等。同时,还引入了一些创新的策略,如升级操作和非支配排序等,以提高优化结果的质量。 在使用matlab遗传算法工具箱进行多目标优化时,需要定义优化目标和约束条件,建立适应度函数。然后设置遗传算法的参数,如种群规模、交叉概率、变异概率和迭代次数等。 matlab遗传算法工具箱还提供了一些可视化工具,如种群演化过程图和Pareto前沿图,以便用户分析和评价优化结果。 总之,matlab遗传算法工具箱是一款强大的多目标优化工具,能够有效地解决复杂的多目标优化问题。 ### 回答2: matlab遗传算法工具箱是一个广泛应用于优化问题的软件工具箱,它提供了丰富的算法和函数帮助用户解决常见的优化问题。当处理的问题涉及到多个目标时,多目标优化就成了一个热门的话题。matlab遗传算法工具箱也提供了相应的函数和算法支持多目标优化问题,并且能够提供多种算法和技术以解决常见的多目标优化问题。 在matlab中,用户可以使用gamultiobj函数进行多目标优化,该函数采用遗传算法作为求解器。用户需要定义自己的目标函数和约束条件,定义变量边界等信息。当程序运行完毕时,gamultiobj函数会返回一组满足目标函数和约束条件的最优解集合,这些解集合构成了“帕累托前沿”,用户可以在这个解集中根据自己的需求选择最适合的解。 除了gamultiobj函数matlab遗传算法工具箱中还提供了其他多目标优化算法,如paretosearch、multiobj等函数,使用这些函数可以更全面地了解多目标优化算法和技术。值得注意的是,不同的多目标优化问题需要使用不同的算法和技术,需要针对具体问题进行选择。 总之,matlab遗传算法工具箱提供了丰富的功能和算法支持多目标优化,可以帮助用户快速高效地解决复杂的优化问题。 ### 回答3: matlab遗传算法工具箱是一个强大的工具,可用于多种优化问题求解,其中包括多目标优化问题。多目标优化是将多个目标函数数学模型结合在一起,寻求一个合适的解集,使得这些目标函数达到最优值或近似最优值。这种优化方法可以应用于各种实际问题,如机械设计、电路设计、经济学和生物学等领域。 matlab遗传算法工具箱多目标优化可以在设置多个目标函数后在一个优化问题同时优化多个函数。它的主要优势是它可以针对多个目标函数产生一组解,这些解是彼此非支配的。具体来讲,一个解被称为非支配,如果没有其他解能同时优化所有的目标函数matlab遗传算法工具箱多目标优化采用被称为多目标遗传算法的算法来生成这种类型的解。这种算法通过使用选择、交叉和变异操作来搜索多目标优化问题的解空间。 总之,matlab遗传算法工具箱多目标优化是一个强大的工具,可以帮助解决各种复杂的多目标优化问题。它可以非常有效地在求解优化多个目标函数,生成非支配解集并加快计算。这个工具对各种领域的研究人员都非常有用,因为他们可以使用它来优化他们的问题并最终实现更好的结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值